package besteAukera;

import java.awt.Color;
import java.awt.Graphics;
import java.util.Vector;

public class NotFisikoa extends AteLogikoak {
	private Color kolorea;
	private Vector<Hanka> hankaBektorea=new Vector<Hanka>();
	private Vector<Hanka> sarreraBektorea=new Vector<Hanka>();
	private Hanka s1, i1;
	private SarreraDatu sd1;
	private SarreraDatu sarDat=null;
	public NotFisikoa(int x1, int y1, int hankaKop,int sarKop, int r1, int r2, int g1, int g2, String motaFis) {
		super(x1, y1, hankaKop,sarKop, r1, r2, g1, g2,motaFis);
		// TODO Auto-generated constructor stub
		if (motaFisikoa.compareTo("posNeg") == 0){
			s1 = new Hanka(x, y +12, "positiboa", "s", 0, this, "h","ez");
			i1 = new Hanka(x +60, y +12, "negatiboa", "i", 1, this, "h","ez");
			}
			else if (motaFisikoa.compareTo("negPos") == 0) {
				s1 = new Hanka(x, y + 12, "negatiboa", "s", 0, this, "h","ez");
				i1 = new Hanka(x + 60, y + 12, "positiboa", "i", 1, this, "h","ez");
				//s1 = new Hanka(x+20 , y , "negatiboa", "s", 0, this, "h");
			}			
			lotList[0]=s1;
			lotList[1]=i1;
	}
	public void dibujate(Graphics g) {
		g.setColor(Color.black);
		
		g.drawLine( x + 20,  y +22,x+20,  y +2);
		g.drawLine( x + 20,  y + 22,x + 40,  y+12 );
		g.drawLine( x + 20,  y+2,x +40,  y +12);
			s1.dibujate(g);
			i1.dibujate(g);
	}
	public boolean estaDentro(int x, int y) {
		if ((x > this.x) && (x < (this.x + 40)) && (y > this.y)
				&& (y < (this.y + 40))) {
			return true;
		}

		return false;

	}
	/**
	 * And irudiaren laukizuzenaren goi-ezkerreko erpina finkatzen du.
	 * @param x: X ardatzaren posizioa finkatzen du.
	 * @param y: Y ardatzaren posizioa finkatzen du.
	 */
	public void setPosicion(int x1, int y1) {
		this.x = x1;
		this.y = y1;
	}

	public int getX() {
		return x;
	}

	/**
	 * Devuelve la y de la esquina superior izquierda del rectangulo
	 * 
	 * @return y de la esquina superior izquierda del rectangulo
	 */
	public int getY() {
		return y;
	}

	@Override
	public void funtzioLogikoa(Integer... values) {
		
		// TODO Auto-generated method stub
		lotList[1].getIrteera().setBalioa(lotList[0].getSarrera().getBalioa());
	
	}
	@Override
	public Vector<Hanka> getHankak() {
		// TODO Auto-generated method stub
		hankaBektorea = new Vector<Hanka>();
		hankaBektorea.addElement(s1);
		hankaBektorea.addElement(i1);
		return hankaBektorea;
	}

	@Override
	public Vector<Hanka> getSarreraHankak(){
		sarreraBektorea=new Vector<Hanka>();
		sarreraBektorea.addElement(s1);
		sarreraBektorea.addElement(i1);
		return sarreraBektorea;
	}
	public Integer getData1() {
		return data1;
	}

	public Integer getData2() {
		return data2;
	}

	public void setEmaitza(Integer em) {
		emaitza = em;
	
	}
	public Hanka getIrteeraHanka(){
		return i1;
	}
	

	
//	public void sarreraEzabatu(SarreraDatu sd,Graphics g){
//	sd.loturaEzabatu();
//	//irudia ezabatu
//	sd.ezabatu(g);
//	}
	
	
//public void borratuHanka(Hanka h){
//	int izen=h.getIzena();
//	for (Hanka hank:hankaBektorea){
//		if (hank.getIzena()==izen){
//			hankaBektorea.remove(hank);
//		h = new Hanka(x + 15, y + rad2 / 4, "positiboa", "s", izen);
//		hankaBektorea.addElement(h);
//		}
//	}
//}

	public synchronized void abixatu() {
		int i = 0;
		// Nota:Probatu abixatu eta exekutatu And-ean egiten, horrela txip
		// bakoitza
		// berea izango du eta chip-ean hankak sortzen direnez ez da problemarik
		// egon behar
		while (lotList.length > i) {
			int j = 0;

			if (lotList[i] != null)
				if (lotList[i].getHankaMota() != "s")

					while (lotList[i].getLotLista().size() > j) {

						// irteera truen jarri
						Chip unekoChip = this.lotList[i].getLotLista().get(j)
								.getChipa();
						// abixatu behar den txipa unekochipean gorde
						int unekoHanka = lotList[i].getLotLista().get(j)
								.getHankaZenb();
						if ((unekoChip.getLoturenLista()[unekoHanka]
								.getloturaDu() == true))
								unekoChip.lotList[unekoHanka]
													.getSarrera()
													.setBalioa(
															lotList[1].getIrteera().getBalioa());
						unekoChip.aktibatu(unekoHanka);
						// Hau aldatu beharko da, bakarrik ate logikoentzako
						// balio baitu
						j++;
					}
			i++;

		}
		notifyAll();
	}

}